斯人已去,凭吊曾经的性能怪兽"DSSD"
因为关注Jeff Bonwick的缘故,在DSSD刚一面世的时候我就开始注意它了,但直到EMC收购它之后才陆续看到一些DSSD的产品细节资料。在我的印象里,DSSD的产品D5虽然号称是“Rack-Scale Flash Platform”,但看起来它其实更像是一个大号的NVMe SSD,DSSD也可以理解成是"大SSD"。昨天一个朋友告诉我DSSD是Dinosaur SSD也就是"恐龙SSD"的缩写,我才恍然大悟DSSD之所以会被称为“性能怪兽”原来并不仅仅只是因为它性能高,也因为它的名字本来就是一个大怪兽。
1000万的IOPS,100GB/s的吞吐,并且还能提供低于100微秒以内的延迟,这样的性能数据放到三四年前简直让人惊为天人,但放到今天再来看的时候,就已经不再是那么遥不可及,甚至还被人说"10m iops,这个指标太low了"
说上面这句话的人是唐杰……
DSSD的性能优势,很大程度上得益于其内部的PCIe Fabric架构,它也曾经宣传它实现的是世界上最大的PCIe Fabric。但也正因为它采用了不太通用的PCIe Fabric,也就造成了这个产品只能在一两个机架的范围内进行扩展连接,毕竟最长也就只有4m长的线缆。
而因为要实现高性能,DSSD在数据面采用了类似"转控分离"的架构,所以除了一个Cubic RAID之外几乎拿不出别的功能和特性来,最后只能被人评价两个字——“傻快”
Cubic RAID这个特性虽然也有不少亮点,比如它能以更小的代价——仅损失17%的可用容量就实现了远超RAID6的冗余度。但了解Jeff Bonwick的人应该都知道,作为ZFS的设计者,他当年用仅仅几百行代码就实现了ZFS里的RAID-Z算法,现在弄一个Cubic RAID出来,其实、好像、似乎也没什么特别让人感到惊艳的。
软件功能和各种高级特性的缺失也造成了DSSD产品应用场景的受限,即使把它用在非常适合它也就是对IO性能要求很高的数据库场景,它也只适合被当作OLAP应用的数据副本存储来使用。在下面的这种高性能数据库场景之下,不仅还要再搭上一台VMAX或者XtremIO来使用,还要配合Oracle的ASM mirror功能。而且DSSD最大144TB(36*4T)的存储容量在这里似乎又成为瓶颈了,如果说其实也不需要那么大的存储容量,那么用一台x86服务器插上24块NVMe SSD的容量和性能其实也没比DSSD差多少了。
说到DSSD D5的内部架构,比起一般我们看到的这种架构图
或者是这种
我更喜欢看Jeff Bonwick在FMS2016上放出来的这张实物图
左边的主控模块其实就是一个两路x86服务器主板,两路CPU一共提供32核,使用的应该也就是Intel E5-269x 的CPU,主板上加了一个PCIe Switch芯片连接到Midplane上。Midplane是一个无源背板,而用来作为数据通道使用的PCie Fabric就是右侧的那块IO模块了。
IO模块上的芯片明晃晃的标示着IDT的logo,显然就是IDT的PCIe switch芯片,虽然看不太清楚芯片上的具体字样,相信应该是IDT支持PCIe 3.0的89HPES64H16G3芯片,这12个64通道的PCIe 交换芯片分成2组,一组负责前端的主机连接,另一组则负责后端的Flash Module连接。6个前端的芯片每个出8个x4的PCIe通道,所以最大可以连接48个Client主机。后端的芯片除了与前端的6个芯片互联外还负责连接后端的6组一共是36个Flash Module了,而每个Flash Module上面都有两个PCIe 接口,分别连接到两组不同的IO module上,再通过PCIe 的非透明桥功能实现高可用HA及故障切换Failover。
而这个Flash Module之所以不叫SSD是因为在它上面除了ECC和掉电保护外,其实不执行任何其他SSD控制器的功能。其他诸如均衡磨损、垃圾回收、FTL包括Cubic RAID等功能都是在控制模块上的两个x86 CPU进行处理的,根据Jeff Bonwick的说法,32核CPU每个核心每秒都能处理超过30k的IO性能
FM使用的ASIC控制芯片是PMC的NVMe 1032,这个芯片也在许多其他厂商的NVMe SSD上使用,比如三星、Memblaze以及HGST等厂商的产品,只不过这些厂商都只用到它16通道的处理能力,而DSSD则可以把它32通道的处理能力完全发挥出来,这大概也是为什么这个Flash Module的最高功耗会比普通NVme SSD高出一倍多的原因(60w:25W)。
虽然DSSD被停产确实是一件有点让人失望的消息,但不论是从技术还是从商业的角度来看,这个产品确实不具备光明的前景了
下一代的服务器本身就会加入更多的PCIe Switch芯片设计,也会支持更多的NVMe SSD。现在单块NVMe SSD的IOPS性能都可以轻松达到700k,一台配置着24个NVMe SSD的2U两路服务器,理论上能提供的最大IOPS性能就已经能超过DSSD D5的1000万了
作为Fabric连接使用的PCIe互联技术前景并不明朗,不仅下一代的PCIe 4.0标准迟迟未能发布,而且据说PCIe 4.0最远只能支持14英寸也就是35厘米左右的物理连接。而在服务器上,现在已经普及了10G以太网卡,支持RDMA功能的25G、40G甚至100G网卡也会逐渐被更多的使用,PCIe相对以太网的带宽优势不再明显,但以太网丰富的功能特性以及成本优势实在太过明显了。在NVMe可以 over的Fabric选择上,不仅PCIe 要退避三舍,甚至IB和FC也都不能直撄其锋了。
Intel的SPDK为基于NVMe的存储提供了高性能的开发套件,User Space的NVMe驱动、开源的高性能iSCSI Target和NVMe-oF Target也让基于NVMe over Ethernet的开发变得越发简单。
现如今基于服务器的超融合以及分布式架构也都让DSSD这种典型的Shared Storage显得不合时宜,用户也更倾向使用标准的服务器而不是一台专用的高性能、高成本的设备来作为这种傻快的存储设备来使用。
最后还是想说,DSSD的逝去就跟创造它的那群人曾经所在的公司Sun一样让人叹息,太强技术导向的产品和公司经常都不能获得市场的认可。而作为一个技术上这么超前的产品,直接把它停产确实有些可惜了,我还是觉得真正适合DSSD的场景也许并不是把它作为一个通用的共享存储来使用,把它作为存储机头后面的一个高性能扩展柜来使用也许是更适合它的用武之地。